package d3_finally;

import java.io.*;

public class FinallyDemo03 {
    public static void main(String[] args) {
        //目标: 目标: JDK 7 开始释放资源的新方式 try - catch - resource
        //进行异常处理
        try (
                //这里只能反之资源对象, 用完之后自动调用资源的close方法关闭资源
                //1、创建一个字节输入流: 文件读取到内存中来
                InputStream fIs = new FileInputStream(
                        "D:\\javadevelop\\2024班\\02阶段java基础进阶\\陈某总结\\章若楠.jpg");
                //2、创建一个自己输出流: 用于将内存在的字节进行写到文件中
                OutputStream fOs = new FileOutputStream(
                        "D:\\javadevelop\\2024班\\02阶段java基础进阶\\陈某总结\\老婆.jpg");
                MyConnection myConnection = new MyConnection()
        ) {

            //3、准备一个字节数组
            byte[] buffer = new byte[1024];

            //4、转移数据
            int len;
            while ((len = fIs.read(buffer)) != -1) {
                fOs.write(buffer, 0, buffer.length);//读到多少就倒多少
            }
            System.out.println("复制完成");
        } catch (Exception e) {//捕获一切异常
            e.printStackTrace();//打印堆栈的信息
        }

    }
}
//今后也是这样写资源的,底层占占硬件吗
class MyConnection implements AutoCloseable{
    private String name;
    @Override
    public void close() throws Exception {
        System.out.println(name + " 自动被关闭了");
    }

}
